package DAO;

import factory.Conexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import model.EstadoIntegracao;

public class EstadoIntegracaoDAO {
    
    private EstadoIntegracaoDAO()
    {
        
    }
    
    public static boolean insert(EstadoIntegracao estadoIntegracao) {
        String sql;
        sql  = "INSERT INTO ESTADOINTEGRACAO (ESTADOINTEGRACAO,";
        sql += "                              DESCRICAOESTADOINTEGRACAO)";
        sql += "                      VALUES (?,";
        sql += "                              ?)";

        Connection conn;
        PreparedStatement stm;
        try {
            conn = Conexao.getConnection();
            stm = conn.prepareStatement(sql);
            stm.setInt(1, estadoIntegracao.getEstadoIntegracao());
            stm.setString(2, estadoIntegracao.getDescricaoEstadoIntegracao());

            stm.execute();
            stm.close();
            conn.close();
            return true;
        } catch (SQLException ex) {
            return false;
        }
    }

    public static boolean update(EstadoIntegracao estadoIntegracao) {
        String sql;
        sql  = "UPDATE ESTADOINTEGRACAO";
        sql += "   SET DESCRICAOESTADOINTEGRACAO = ? ";
        sql += " WHERE ESTADOINTEGRACAO = ?";

        Connection conn;
        PreparedStatement stm;
        try {
            conn = Conexao.getConnection();
            stm = conn.prepareStatement(sql);
            stm.setInt(1, estadoIntegracao.getEstadoIntegracao());
            stm.setString(2, estadoIntegracao.getDescricaoEstadoIntegracao());

            stm.execute();
            stm.close();
            conn.close();
            return true;
        } catch (SQLException ex) {
            return false;
        }
    }

    public static boolean delete(EstadoIntegracao estadoIntegracao) {
        String sql;
        sql  = "DELETE";
        sql += "  FROM ESTADOINTEGRACAO";
        sql += " WHERE ESTADOINTEGRACAO = ?";

        Connection conn;
        PreparedStatement stm;
        try {
            conn = Conexao.getConnection();
            stm = conn.prepareStatement(sql);
            stm.setInt(1, estadoIntegracao.getEstadoIntegracao());
            stm.execute();
            stm.close();
            conn.close();
            return true;
        } catch (SQLException ex) {
            return false;
        }
    }

    public static ArrayList<EstadoIntegracao> select() {
        String sql;
        sql  = "SELECT EST.ESTADOINTEGRACAO,";
        sql += "       EST.DESCRICAOESTADOINTEGRACAO";
        sql += "  FROM ESTADOINTEGRACAO EST";

        Connection conn;
        PreparedStatement stm;
        ResultSet rs;
        EstadoIntegracao estadoIntegracao;
        ArrayList<EstadoIntegracao> listEstadoIntegracao = new ArrayList<EstadoIntegracao>();
        try {
            conn = Conexao.getConnection();
            stm = conn.prepareStatement(sql);
            rs = stm.executeQuery();
            while (rs.next()) {
                estadoIntegracao = new EstadoIntegracao();
                estadoIntegracao.setEstadoIntegracao(rs.getInt("ESTADOINTEGRACAO"));
                estadoIntegracao.setDescricaoEstadoIntegracao(rs.getString("DESCRICAOESTADOINTEGRACAO"));
                listEstadoIntegracao.add(estadoIntegracao);
            }
            stm.close();
            conn.close();
            return listEstadoIntegracao;
        } catch (SQLException ex) {
            return null;
        }
    }
}
